package com.jms.mail;

import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.SimpleEmail;

/**
 * create by yongli on 2021-10-10 15:53
 * 发邮件是一个对等的过程
 * 即邮件（消息）从一个邮箱发到另一个邮箱中
 * 在这个过程中，是两个邮箱的交互。
 */

public class MailUtil {

    public static void main(String[] args) {
        // 这是收件箱
        String host = "smtp.163.com";
        String addr = "213260338050@163.com";
        String title = "this is from java mail test";
        String message = "there is nothing,good luck!";
        //
        sendSimpleEmail(addr, addr, title, message);
    }

    public static int sendSimpleEmail(String emailAddress, String sendName, String title, String message) {
        //要发送的服务器 地址
        String hostName = "smtp.qq.com";//对方邮箱是什么类型，这里是QQ邮箱的服务器地址
        //要发送的服务器 邮箱账号
        String userName = "2869486287@qq.com";
        //要发送的服务器 邮箱密码
        String password = "xxxx";
        //要发送的端口   587   465   25
        int smtpPort = 587;
        //是否使用ssl加密协议
        boolean SSL = true;
        try {
            // 设置好发发邮件的各个属性
            SimpleEmail email = new SimpleEmail();
            //smtp address
            email.setHostName(hostName);
            //smtp port
            email.setSmtpPort(smtpPort);
            //账号 密码
            email.setAuthenticator(new DefaultAuthenticator(userName, password));
            //设置发件人地址
            email.setFrom(userName);
            //设置邮件标题
            email.setSubject(title);
            //设置邮件主体
            //email.setMsg(message);
            email.setContent(message, "text/html;charset=UTF-8");//解决乱码
            //设置收件人地址
            email.addTo(emailAddress);
            //设置是否使用SSL加密
            email.setSSL(SSL);
            //发送邮件
            email.send();
        } catch (Exception e) {
            //异常
            e.printStackTrace();
            return 0;
        }
        //正常
        return 1;
    }
}
